/**
 * 游戏界面的接口
 * 
 * 所有的游戏界面的编写都应当实现这个接口
*/
#ifndef __ISCENE_H__
#define __ISCENE_H__

#include "m_shader.h"
#include "glad/glad.h"
#include "GLFW/glfw3.h"

class IScene
{
protected:
    GLFWwindow *window;

public:
    IScene(GLFWwindow *window) : window(window) {}

    //获取窗体对象（在callbacks.h中有用）
    GLFWwindow *getWindow() const { return window; }

    //初始化界面
    virtual void init() = 0;

    //绘制界面
    virtual void draw() = 0;

    //更新界面
    virtual void update(float dt) = 0;

    //销毁界面
    virtual void deinit() = 0;
};

#endif